Linux:不同文件相同列字符合并文件(awk函数) | 您所在的位置:网站首页 › linux 把两个文件合并 › Linux:不同文件相同列字符合并文件(awk函数) |
存在file1.txt,其内容如下: H aa 0 0 1 -9 H bb 0 0 2 -9 H cc 0 0 2 -9 存在file2.txt,其内容如下: H aa 0 0 0 -9 asd qwe H bb 0 0 0 -9 fgh rty H cc 0 0 0 -9 jkl uio 现希望根据file1和file2相同的列字符合并文件,要求如下:1、如果两个文件的第二列相同,则将file2的第三列、第四列、第五列、第六列修改为file1对应的第三列、第四列、第五列、第六列内容;2、新文件的第七列和第八列为file2的第七列和第八列。 合并的文件file3.txt内容如下: H aa 0 0 1 -9 asd qwe H bb 0 0 2 -9 fgh rty H cc 0 0 2 -9 jkl uio 则用到的命令为: awk 'NR==FNR{a[$2]=$0;next}NR>FNR{if($2 in a)print a[$1],a[$2],$7,$8}' file1.txt file2.txt > file3.txt
如果想合并两个文件所有的列,则可以使用join函数: join -1 2 -2 2 file1.txt file2.txt > file4.txt
file4.txt 如下所示: aa H 0 0 1 -9 H 0 0 0 -9 asd qwe bb H 0 0 2 -9 H 0 0 0 -9 fgh rty cc H 0 0 2 -9 H 0 0 0 -9 jkl uio
本文来自博客园,作者:橙子牛奶糖(陈文燕),转载请注明原文链接:https://www.cnblogs.com/chenwenyan/p/8998656.html |
CopyRight 2018-2019 实验室设备网 版权所有 |